package sismed.negocio.controle;

import java.util.List;


import sismed.dados.hibernate.dao.DAOHibernateMensagem;
import sismed.dao.IDAOMensagem;
import sismed.negocio.modelo.Medico;
import sismed.negocio.modelo.Mensagem;
import sismed.negocio.modelo.Paciente;


public class ControleOperacoesMensagem 
{
	private IDAOMensagem daoMensagem;
	
	public ControleOperacoesMensagem()
	{
		daoMensagem = new DAOHibernateMensagem();
	}
	
	public boolean addMensagem(Medico origem, Medico destino, String assunto, Paciente paciente, String conteudo, String data, String hora, String tipo)
	{
				
		Mensagem mensagem = new Mensagem();
		
		mensagem.setOrigem(origem);
		mensagem.setDestino(destino);
		mensagem.setConteudo(conteudo);
		mensagem.setAssunto(assunto);
		mensagem.setPaciente(paciente);
		mensagem.setData(data);
		mensagem.setHora(hora);
		mensagem.setTipo(tipo);
		
		
		if(validar(mensagem))					
			return daoMensagem.enviar(mensagem);
		else
			return false;
	}
	
	public boolean validar(Mensagem mensagem)
	{
		if( (mensagem.getOrigem() == null) || (mensagem.getOrigem() == null) || 
				mensagem.getConteudo().isEmpty() || mensagem.getAssunto().isEmpty() || 
				(mensagem.getPaciente() == null) || mensagem.getData().isEmpty() || 
				mensagem.getHora().isEmpty() || mensagem.getTipo().isEmpty() )			
			return false;
		
		return true;
	}
	
	public Mensagem getMensagem(String idMensagem)
	{
		
		return daoMensagem.recuperar(idMensagem);
	}
	
	public List<Mensagem> recuperarListaMensagem(String crmMedico)
	{
		
		return daoMensagem.recuperarLista(crmMedico);
	}
	
}
